package com.ruoyi.basedata.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 缴费记录对象 t_bill_payment_record
 * 
 * @author gdqt
 * @date 2025-04-23
 */
@TableName("t_bill_payment_record")
public class BillPaymentRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 缴费主键 */
    @TableId(value="id",type = IdType.AUTO)
    private Long id;

    /** 能耗分类（从数据字典获取） */
    @Excel(name = "能耗分类", readConverterExp = "从=数据字典获取")
    @TableField("energy_use_classification")
    private String energyUseClassification;

    /** 用户编号 */
    @Excel(name = "用户编号")
    @TableField("user_id")
    private String userId;

    /** 表编号 */
    @Excel(name = "表编号")
    @TableField("terminal_id")
    private String terminalId;

    /** 缴费类型(1.核销 2.预充) */
    @Excel(name = "缴费类型(1.核销 2.预充)")
    @TableField("payment_type")
    private Integer paymentType;

    /** 上次余额 */
    @Excel(name = "上次余额")
    @TableField("before_price")
    private BigDecimal beforePrice;

    /** 充值金额 */
    @Excel(name = "充值金额")
    @TableField("recharge_price")
    private BigDecimal rechargePrice;

    /** 核销月份 */
    @Excel(name = "核销月份")
    @TableField("write_off_months")
    private String writeOffMonths;

    /** 核销金额 */
    @Excel(name = "核销金额")
    @TableField("write_off_price")
    private BigDecimal writeOffPrice;

    /** 本次结余 */
    @Excel(name = "本次结余")
    @TableField("current_price")
    private BigDecimal currentPrice;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("payment_time")
    private Date paymentTime;

    /** 来源 */
    @Excel(name = "来源")
    @TableField("payment_source")
    private Integer paymentSource;

    /** 支付状态(0:未缴费 1:已缴费) */
    @Excel(name = "支付状态(0:未缴费 1:已缴费)")
    @TableField("status")
    private Integer status;

    /** 收费员 */
    @Excel(name = "收费员")
    @TableField("operator")
    private Long operator;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setEnergyUseClassification(String energyUseClassification) 
    {
        this.energyUseClassification = energyUseClassification;
    }

    public String getEnergyUseClassification() 
    {
        return energyUseClassification;
    }
    public void setUserId(String userId) 
    {
        this.userId = userId;
    }

    public String getUserId() 
    {
        return userId;
    }
    public void setTerminalId(String terminalId) 
    {
        this.terminalId = terminalId;
    }

    public String getTerminalId() 
    {
        return terminalId;
    }
    public void setPaymentType(Integer paymentType) 
    {
        this.paymentType = paymentType;
    }

    public Integer getPaymentType() 
    {
        return paymentType;
    }
    public void setBeforePrice(BigDecimal beforePrice) 
    {
        this.beforePrice = beforePrice;
    }

    public BigDecimal getBeforePrice() 
    {
        return beforePrice;
    }
    public void setRechargePrice(BigDecimal rechargePrice) 
    {
        this.rechargePrice = rechargePrice;
    }

    public BigDecimal getRechargePrice() 
    {
        return rechargePrice;
    }
    public void setWriteOffMonths(String writeOffMonths) 
    {
        this.writeOffMonths = writeOffMonths;
    }

    public String getWriteOffMonths() 
    {
        return writeOffMonths;
    }
    public void setWriteOffPrice(BigDecimal writeOffPrice) 
    {
        this.writeOffPrice = writeOffPrice;
    }

    public BigDecimal getWriteOffPrice() 
    {
        return writeOffPrice;
    }
    public void setCurrentPrice(BigDecimal currentPrice) 
    {
        this.currentPrice = currentPrice;
    }

    public BigDecimal getCurrentPrice() 
    {
        return currentPrice;
    }
    public void setPaymentTime(Date paymentTime) 
    {
        this.paymentTime = paymentTime;
    }

    public Date getPaymentTime() 
    {
        return paymentTime;
    }
    public void setPaymentSource(Integer paymentSource) 
    {
        this.paymentSource = paymentSource;
    }

    public Integer getPaymentSource() 
    {
        return paymentSource;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setOperator(Long operator) 
    {
        this.operator = operator;
    }

    public Long getOperator() 
    {
        return operator;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("energyUseClassification", getEnergyUseClassification())
            .append("userId", getUserId())
            .append("terminalId", getTerminalId())
            .append("paymentType", getPaymentType())
            .append("beforePrice", getBeforePrice())
            .append("rechargePrice", getRechargePrice())
            .append("writeOffMonths", getWriteOffMonths())
            .append("writeOffPrice", getWriteOffPrice())
            .append("currentPrice", getCurrentPrice())
            .append("paymentTime", getPaymentTime())
            .append("paymentSource", getPaymentSource())
            .append("status", getStatus())
            .append("operator", getOperator())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
